package com.a2j.app.user.mapper;

import com.a2j.beans.user.AppUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface AppUserMapper {
    /**
     * 注册接口，SQL不能为空的几个字段
     * username
     * password
     * salt
     * phone
     */
    // 唯一约束（用户名 / 身份证号码）：alter table app_user add unique(username / id_card);
    // web端注册接口
    int register(AppUser record);

    // 移动端接口，4个入参3个必传
    int register(@Param("map") Map<String, Object> params);


    // 查询所有用户，测试接口
    List<AppUser> allUser();


    // 移动端登录接口
    AppUser login(String username, String password);

    // app、web端用户详情接口，同时用于修改密码逻辑查询
    AppUser findUserById(Integer userId);

    // app用户登录，app、web注册逻辑查询。（实名认证，还需要做身份证号码唯一校验 -> findUserByIdCard()）
    AppUser findUserByAccount(String account);

    // web端用户列表接口
//    List<AppUser> allAppUsers(UserRequest request);

    // web端用户列表总数接口
//    int selectCount(UserRequest request);

    // app、web编辑用户接口
    int updateUser(AppUser record);
}